package com.txzt.gaea.business.project.domain.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.beetl.sql.core.annotatoin.InsertIgnore;
import org.beetl.sql.core.annotatoin.Table;
import org.beetl.sql.core.annotatoin.UpdateIgnore;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/*
 * 项目经费支出申请表
 * 2022-09-29
 */
@Data
@Table(name = "tb_project_fund_expense_request")
public class ProjectFundExpenseRequest {

    //主键
    private Long id ;
    //状态  10 待提交 20 审核中 30  审核通过 40 审核不通过 50 退回修改
    private Integer status ;
    @InsertIgnore
    @UpdateIgnore
    private String statusName;
    //附件
    private String annex ;
    //创建人
    private Long createBy ;
    //申请部门
    private Long deptId ;

    private Long orgId;

    private String deptName;
    //可执行预算数
    private BigDecimal executableBudget ;
    //申请人
    private Long expenseBy ;
    @InsertIgnore
    @UpdateIgnore
    private String expenseUserName;
    //申请事项
    private String expenseInfo ;
    //支出形式 字典fer_expense_type 1 形式1 2 形式2
    private String expenseType ;
    @InsertIgnore
    @UpdateIgnore
    private String expenseTypeName;
    //经费预算编号
    private String ferNo ;
    //流程ID
    private Long flowId ;
    //经费类型  1 设备费 2 材料费 3 外部协作费 4 燃料动力费 5 出版/文献/信息传播/知识产权事务费 6 会议/咨询费-会议
    //         7 会议/咨询费-通讯 8 现场访谈、勘察 9 国际合作与交流费 10 差旅费 11 劳务费 12 间接费 13 其他支出
    private String fundType ;
    @InsertIgnore
    @UpdateIgnore
    private String fundTypeName;
    //其他明细数据
    private String otherDetail ;
    //其他明细数据
    private String otherDetailA;
    //其他明细数据
    private String otherDetailB;
    //其他明细数据
    private String otherDetailC;
    //间接费用明细
    private String overheadDetail ;
    //项目明细数据
    private String projectDetail ;

    private String projectList;
    @InsertIgnore
    @UpdateIgnore
    private List<String> projectShowList;
    //备注
    private String remark ;
    //申请预算总金额
    private BigDecimal totalExpenseBudget ;
    //年度预算金额
    private BigDecimal yearBudget ;
    //创建时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime ;
    //申请日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date expenseTime ;
    //审批人
    @InsertIgnore
    @UpdateIgnore
    private String currentStepUserName;
    //项目数量
    private Integer projectNum;

    /** 是否可审核 */
    @UpdateIgnore
    @InsertIgnore
    private Boolean isCheck;

    /** 是否可撤回 */
    @UpdateIgnore
    @InsertIgnore
    private Boolean isRevocation;

    /** 权限用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long permissionUser;

    /** 权限部门 */
    @UpdateIgnore
    @InsertIgnore
    private Long permissionDept;

    /** 当前登录用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long currentUser;

    @UpdateIgnore
    @InsertIgnore
    private Boolean isFlowRevocation;

    //实际支出
    private BigDecimal totalActualExpense;
    @UpdateIgnore
    @InsertIgnore
    private Long pjId;

    /** 当前审批用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long currentStepMember;
}
